// pages/footBill/footBill.js
import Dialog from '@vant/weapp/dialog/dialog'
import upload from '../../utils/upload'
import { orderCouponDetail, couponUpdate, addStoreGoods } from '../../utils/api.js';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id: '',
    type: '',
    list: [],//主图
    listTow: [],//详情图
    // imgs  商品图片

    parameter: {
      businessId: '',
      name: '',//名称
      stock: '',//库存
      cost: 0,//成本价格
      price: 0,//团购价格
      faceValue: 0,//面值
      discount: '',//折扣
      validityPeriod: 30,//有效期
      useNum: 0,//使用数量
      useTime: '周一至周日 10:00-22:00',//使用时间
      useScope: '全场通用',//使用范围
      services: '随时退',//服务保障
      verifyNum: 1,//可核销次数
      rules: '',// 规则
      content: [  //内容
      ],
      contentSelectNum: 1,
    },

    textList: [
      {
        title: '上架申请',
        con: '提交上架申请后，工作人员会在3个工作日内完成审核。'
      },
      {
        title: '编辑申请',
        con: '提交上架申请后，工作人员会在3个工作日内完成审核。审核期间该团购会自动下架，审核通过后自动上架。'
      },
    ],
    operationShow: false,
    operData: {},

    selectType: false,
    activeIndex: 0,
    selectNum: 1,
    selectCon: '全部可享',



  },

  // 获取当前团购信息
  orderCouponDetail() {
    orderCouponDetail({ id: this.data.id }).then(res => {
      if (res.data.contentSelectNum == res.data.content.length) {
        this.setData({
          selectCon: '全部可享',
        })
      } else {
        this.setData({
          selectCon: `${res.data.content.length}选${res.data.contentSelectNum}`,
          selectNum: Number(`${res.data.contentSelectNum}`)
        })
      }

      var arrayTwo = res.data.content.map((item) => {
        return Object.assign(item, {
          price: item.price / 100
        })
      });

      console.log(this.data.selectNum, "selectNumselectNumselectNum")
      this.setData({
        parameter: res.data,
        'parameter.content': arrayTwo,
        'parameter.price': res.data.price / 100,
        listTow: res.data.imgs
      })
    })
  },

  addInterests() {
    let content = this.data.parameter.content
    content.push({
      name: '',
      price: '',
      num: 1,
      value: '',
    })
    this.setData({
      'parameter.content': content,
      'parameter.contentSelectNum': Number(`${content.length}`)
    })
    console.log(this.data.parameter.contentSelectNum, "parameter.contentSelectNum")
  },
  deleteInterests(e) {
    let dataset = e.currentTarget.dataset
    let content = this.data.parameter.content
    content.splice(dataset.index, 1)
    this.setData({
      'parameter.content': content
    })
    console.log(content, "content")
  },
  getInputBenefits(e) {
    let dataset = e.currentTarget.dataset

    let string = `parameter.content[${dataset.index}].${dataset.type}`

    if (dataset.type == 'price') {
      let price = e.detail.value;

      price = price.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
      price = price.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
      price = price.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
      price = price.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
      if (price.indexOf(".") < 0 && price != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
        price = parseFloat(price);
      }
      this.setData({
        [string]: price
      })

    } else {
      this.setData({
        [string]: e.detail.value
      })
    }


    console.log(this.data.parameter.content, "当前权益列表222")
  },
  onChange(event) {
    let dataset = event.currentTarget.dataset
    let string = `parameter.content[${dataset.index}].${dataset.type}`
    console.log(event, "event.detail");
    this.setData({
      [string]: Number(event.detail)
    })
  },
  onChangeT(event) {
    this.setData({
      selectNum: Number(event.detail)
    })
  },

  getValue(e) {
    let name = e.currentTarget.dataset.name

    if (name == 'price') {
      let price = e.detail.value;

      price = price.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
      price = price.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
      price = price.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
      price = price.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
      if (price.indexOf(".") < 0 && price != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
        price = parseFloat(price);
      }
      this.setData({
        [`parameter.${name}`]: price
      })
    } else {
      this.setData({
        [`parameter.${name}`]: e.detail.value
      })
    }



  },
  confirm() {
    // console.log(this.data,"data")
    if (this.data.id) {
      this.setData({
        operData: this.data.textList[1]
      })
    } else {
      this.setData({
        operData: this.data.textList[0]
      })
    }
    this.setData({
      operationShow: true,
    })



  },
  close() {
    this.setData({
      operationShow: false
    })
  },
  qhType() {

    if (this.data.parameter.content.length > 1) {
      this.setData({
        selectType: true
      })
    } else {
      wx.showToast({
        title: "团购项目数量需要大于1",
        icon: "none",
      });
    }

  },
  selectTypeFun(e) {
    const { index } = e.currentTarget.dataset

    if (index == 0) {
      this.setData({
        selectCon: '全部可享',
        'parameter.contentSelectNum': Number(`${this.data.parameter.content.length}`)
      })

    } else {
      this.setData({
        selectCon: `${this.data.parameter.content.length}选${this.data.selectNum}`,
        'parameter.contentSelectNum': Number(`${this.data.selectNum}`)
      })
    }

    this.setData({
      activeIndex: index,
      selectType: false
    })

  },
  onClose() {
    this.setData({
      operationShow: false,
      selectType: false
    })
  },
  jumpSeal() {
    
    if (!this.data.parameter.name) {
      wx.showToast({
        title: "团购名称不能为空",
        icon: "none",
      });
      return;
    }
    if (!this.data.parameter.price) {
      wx.showToast({
        title: "请填写团购价格",
        icon: "none",
      });
      return;
    }
    if (this.data.listTow.length == 0) {
      wx.showToast({
        title: "团购头图最少一张",
        icon: "none",
      });
      return;
    }
    if (!this.data.parameter.stock) {
      wx.showToast({
        title: "请填写商品库存",
        icon: "none",
      });
      return;
    }
    if (!this.data.parameter.verifyNum) {
      wx.showToast({
        title: "请填写可核销次数",
        icon: "none",
      });
      return;
    }

    let hasSubmit = true

    if (this.data.parameter.content.length == 0) {
      wx.showToast({
        title: "最少添加一条团购项目",
        icon: "none",
      });
      return;
    }

    this.data.parameter.content.forEach(v => {
      if (v.name.trim() === '' || v.price === '') {
        hasSubmit = false
      }
    })
    if (!hasSubmit) {
      wx.showToast({
        title: "团购项目内容不能为空",
        icon: "none",
      });
      return;
    }






    // console.log(this.data.parameter.content,"content")
    var arrayTwo = this.data.parameter.content.map((item) => {
      return Object.assign(item, {
        price: Number((item.price * 100).toFixed(0))
      })
    });
    console.log(arrayTwo, "arrayTwo")

    let data = {
      // cost: this.data.parameter.cost * 100,
      price: Number((this.data.parameter.price * 100).toFixed(0)),
      // faceValue: this.data.parameter.faceValue * 100,
      stock: Number(this.data.parameter.stock),
      discount: Number(this.data.parameter.discount),
      validityPeriod: Number(this.data.parameter.validityPeriod),
      verifyNum: Number(this.data.parameter.verifyNum),
      useNum: Number(this.data.parameter.useNum),
      imgs: this.data.listTow,
      content: arrayTwo,
    }
    console.log(data, "data")
    // return;
    var result = Object.assign(this.data.parameter, data)

    console.log(result, "result")




    if (this.data.id) {
      couponUpdate(result).then(res => {
        if (res.code == 200) {
          wx.showToast({
            title: "修改成功",
            icon: "none",
          });
          wx.navigateBack({
            delta: 1
          });
        } else {
          wx.showToast({
            title: "系统错误",
            icon: "none",
          });
        }

      })
    } else {
      addStoreGoods(result).then(res => {
        if (res.code == 200) {
          wx.showToast({
            title: "新增成功",
            icon: "none",
          });
          wx.navigateBack({
            delta: 1
          });
        } else {
          wx.showToast({
            title: "系统错误",
            icon: "none",
          });
        }

      })
    }
  },

  deleteImg(e) {
    let type = e.currentTarget.dataset.type
    Dialog.confirm({
      title: '提示',
      message: '您确定要删除这个图片嘛',
    }).then(() => {

      switch (type) {
        case 1:
          const list = this.data.list
          list.splice(e.currentTarget.dataset.index, 1)
          this.setData({
            list
          })
          break;
        case 2:
          const listTow = this.data.listTow
          listTow.splice(e.currentTarget.dataset.index, 1)
          this.setData({
            listTow
          })
          break;
      }

    })
  },

  // 头像
  uploadAvatar(e) {
    let that = this
    let type = e.currentTarget.dataset.type
    wx.chooseImage({
      count: 1, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths;
        upload.uploadMed(tempFilePaths[0]).then(img => {

          switch (type) {
            case 1:
              that.setData({
                list: that.data.list.concat(img)
              })
              break;
            case 2:
              that.setData({
                listTow: that.data.listTow.concat(img)
              })
              break;
          }

        })
      }
    })
  },

  previewImg(e) {
    let type = e.currentTarget.dataset.type
    wx.previewImage({
      current: e.currentTarget.dataset.url,//点击显示的图片
      urls: type == 1 ? this.data.list : this.data.listTow//全部图片
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(options)
    this.setData({
      'parameter.businessId': options.id,
      id: options.listId,
      type: options.type//type  1查看详情  2修改
    })
    if (this.data.id) {
      this.orderCouponDetail();
    }

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})